home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part2 / 13478 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  7.5 KB

  1. Path: scoop.eco.twg.com!usenet
  2. From: mike@jake.eco.twg.com (This space intentionally left blank)
  3. Newsgroups: comp.lang.c++,comp.programming
  4. Subject: Re: Overnight Programmers (was 'Young programmers read me')
  5. Date: 25 Mar 1996 21:52:17 GMT
  6. Organization: The Wollongong Group
  7. Message-ID: <4j74ih$l5d@scoop.eco.twg.com>
  8. References: <4icpp9$7hr@barad-dur.nas.com> <4imqe4$cj3@ping1.ping.be>
  9.     <4isq0a$5gr@scoop.eco.twg.com> <4iv1o6$22j@aadt.sdt.com>
  10. NNTP-Posting-Host: jake.eco.twg.com
  11.  
  12. In article <4iv1o6$22j@aadt.sdt.com>, david_hooker@sdt.com writes:
  13. >In <4isq0a$5gr@scoop.eco.twg.com>, mike@vishnu.eco.twg.com (This space intentionally left blank) writes:
  14. >>In article <4iq5rv$aph@aadt>, david_hooker@sdt.com writes:
  15. >>>In <4ippuq$4pk@scoop.eco.twg.com>, mike@vishnu.eco.twg.com (This space intentionally left blank) writes:
  16. >>>
  17. >>>Someone who needs a buttload of time to write something is either a beginner,
  18. >>>an amateur, or a below-average performer --- definately not "macho".  And we
  19. >>>use C++ (our system has 700,000 - 1,000,000 LOC).
  20. >>
  21. >>Or is working on a less-than well-defined problem, or is trying to hit a
  22. >>moving target, or was lied to about the environment, or was given a target
  23. >>date half as far in the future as the best estimate of the time required, or
  24. >>didn't get the resources the estimate was based on, or a host of other
  25. >>things I've seen repeatedly at a number of different companies.
  26. >
  27. >You are absolutely right of course.  However, good project/product management
  28. >helps alieviate these to a large degree.  In _industry_, you need both good
  29. >programmers and good management.  The bonus is when you can roll both into 
  30. >one person!
  31.  
  32. Yes, but there seem to be even fewer good project managers than there
  33. are good programmers!  And the few that do surface usually get steamrollered
  34. by upper management, or marketing, when their realistic delivery dates or
  35. resource levels are shoved asside for "business reasons".  Well, it seems to
  36. me that not having time or materials to do proper development is a sure sign
  37. of failure in management and marketing.  If management can't arrange for
  38. resources, perhaps they should consider closing up shop, and if marketing
  39. can't predict a window of opportunity far enough in advance to allow
  40. development of the product, they should go into advertising or sales and
  41. leave the market predicting business to folks with more foresight.  
  42.  
  43. More often than not, marketing and management haven't the foggiest idea how
  44. long proper development takes, and keep insisting that the programmers "work
  45. harder" when they don't hit a date 1/4 as far off as the technical
  46. prediction.  Luckily not every place is like this (the place I work now tends
  47. not to be), but I've seen it plenty of times in the past at other places.
  48.  
  49. I even worked one place that seriously thought they could take VMS
  50. programmers and have them convert a product designed specifically for DECnet
  51. into a Unix-hosted TCP/IP product in "a couple of weeks".  Forget that not
  52. one of the programmers had ever so much as used a text editor on a unix
  53. machine, or knew the name of a single socket routine, the fact that it would
  54. only take two weeks to train a new salesman meant that programmers should be
  55. able to retrain for a new environment in the same time...or maybe twice as
  56. long and they can learn by porting this program!  For some reason the place
  57. is still in business, but they seem to have a VERY high programmer turnover
  58. rate (100% in under 2 years...repeatedly).
  59.  
  60. >>This sounds a lot like the "macho" attitude I mentioned.  "*We* can put out
  61. >>buku piles of code with anything!  Who needs tools that help?!?  Sissies!!"
  62. >>
  63. >
  64. >Oh, I'm all for tools... if the programmer knows how to use them properly, and
  65. >doesn't actually become a "tool of the tool" instead.
  66.  
  67. Agreed.
  68.  
  69. >>>>If you don't agree, check out any of the Corel newsgroups and see how thier
  70. >>>Sound's like a either bad programmers, or just a bad attitude.
  71. >>
  72. >>Or an unreasonable/shortsighted management, or a flakey environment (MS Windows
  73. >>3.1) combined with a language that makes it easy to code errors, and even
  74. >>encourages poor practices.
  75. >
  76. >I'll agree on the management point.  The environment point... sometimes.  I
  77. >firmly believe that a talented programmer can make a computer do almost anything.
  78. >However, the language point - I don't see how C++ encourages anything except
  79. >diligence and dicipline from programmers using it.
  80.  
  81. C++ has a lot of C in it.  This translates to a syntax that is prone to
  82. single token errors (a one character typo may not result in a compiler
  83. error, though it isn't generating the code desired), and one that encourages
  84. practices such as implicit type conversions that sometimes aren't expected
  85. or desired (yes, if you pay enough attention to what you are doing you can
  86. avoid these, but why shouldn't the compiler do this stuff and let you
  87. concentrate on "higher" things, beyond the capability of a compiler?). The
  88. inclusion of header files as source code, rather than symbol modules from
  89. other compilations, allows seperate parts of a program to end up with
  90. different definitions for common items (either due to changes in the header
  91. file between the two compiles, or because of different conditional
  92. compilation settings...or both).  There are lots of other places where C,
  93. and therefore C++, has traps waiting and programmers have to spend effort
  94. to watch for them or spend time crawling out of them.  It would be better if
  95. the traps weren't there in the first place.
  96.  
  97. Leaving aside the inherited C stuff, things like "friend" relationships are
  98. *needed* in some cases, and this is a clear violation of the basic
  99. info-hiding parts of OOP.  Whether a function gets "inlined" or not can have
  100. an effect...and you don't always know whether a given function is or not. 
  101.  
  102. I'm not a major expert on C++, so I'm not the best person to tell you what's
  103. wrong with it, but I work with one, who is also an expert on Ada, and he has
  104. lots of examples of places where C and C++ have traps built into the
  105. language, and how Ada avoids the traps.  I'm sure there are still traps in
  106. Ada, but I would also guess that *those* traps are in C++ as well, but this
  107. is just a guess.
  108.  
  109. >I, of course, enjoy having the best tools for the job.  I would not balk at
  110. >using Delphi to put together certain applications, or Smalltalk, or even
  111. >pure assembly!  My gripe is those "programmers" that think just because they
  112. >can write basic C++, use VC++ (or BC++, I'm not partisan) and throw together
  113. >a simple application, that they are worthy of the title "Software Engineer" or
  114. >"Programmer/Analyst" or whatever.
  115. >
  116. >Some memorable answers that an interviewee gave:
  117. >
  118. >Q: What is a template function?
  119. >A: The shell code that Visual C++ generates for a method.
  120. >
  121. >Q: What is your favorite feature of C++?
  122. >A: CFrameWindow
  123. >
  124. >Q: What part of C++ do you have trouble with?
  125. >A: OLE.
  126.  
  127. Yeah, the doors of the Ivory Tower have been opened, and spots in the
  128. basement rented to the Great Unwashed...but so far they haven't figured out
  129. the elevator buttons...
  130.  
  131.        -- Mike "using binary was a stroke of genius! ;^)" Bartman --
  132.  
  133. ==============================================================================
  134. | I didn't really say all the things that I said.  You probably didn't read  |
  135. | what you thought you read.  Statistics show that this whole thing is more  |
  136. | than likely just a hideous misunderstanding.                     |
  137. ==============================================================================
  138.  
  139. ==============================================================================
  140. Push any key.  Then push the any other key.
  141. ------------------------------------------------------------------------------
  142.  
  143.